package sg.edu.nus.iss.billing.model.subscription;

import java.util.List;

import sg.edu.nus.iss.billing.model.charge.IChargable;

/**
 * @author Ananda, Saravana, BeeHong
 *
 */
public interface ISubscribable {
	public String getServiceId();

	public String getDateCommenced();
	
	public String getDateTerminated();

	public void setDateCommenced(String dateCommenced);
	
	public void setDateTerminated(String dateCommenced);

	/**
	 * A service could have more than one charge, eg. for mobile roaming, there could be both subscription and usage
	 * charge.
	 * 
	 * @param chargableItem
	 */
	public void setCharges(List<IChargable> charges);

	public List<IChargable> getCharges();
	
	public void clearCharges();

}
